package com.fidelizarte.ejb.persistence.dao.impl;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.Query;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.fidelizarte.ejb.persistence.dao.factorydao.AbstractDao;
import com.fidelizarte.ejb.persistence.entities.TipoCampania;

@Stateless
public class TipoCampaniaDAO extends AbstractDao<TipoCampania> {

	private static final Logger log = LoggerFactory
			.getLogger(TipoPersonaDAO.class);
	private boolean transaccionRealizada = false;

	/**
	 * Constructor por defecto que inicializa el AbstractDao con la clase
	 * entidad
	 */
	public TipoCampaniaDAO() {
		super(TipoCampania.class);
	}

	/**
	 * Obtiene una lista de campanias de una empresa determinada
	 * parametro
	 * 
	 * @param idE
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public List<TipoCampania> getTiposCampaniaPorIdEmpresa(Integer idEmpresa) {
		log.info("Metodo getTiposCampaniaPorIdEmpresa");
		Query query = em.createQuery("select t FROM TipoCampania t"
				+ " JOIN t.campanias c"
				+ " JOIN c.empresa e " 
				+"WHERE"
				+ " e.idEmpresa=:idEmpresa");
		query.setParameter("idEmpresa", idEmpresa);
		return query.getResultList();
	}
}